package cn.wh.beans.factory;

import cn.wh.beans.BeansException;
import cn.wh.beans.factory.config.AutowireCapableBeanFactory;
import cn.wh.beans.factory.config.BeanDefinition;
import cn.wh.beans.factory.config.BeanPostProcessor;
import cn.wh.beans.factory.config.ConfigurableBeanFactory;

/**
 * @Author wanghao
 * @Date 2022-08-28 14:45
 * @Description: TODO
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons() throws BeansException;

    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);

}
